    <script>
    //什么是回调地狱？一个异步请求套着一个异步请求，一个异步请求依赖于另一个的执行结果，使用回调的方式相互嵌套
//早起js没有处理异步的手段只能通过回调函数
    // setTimeout(()=>{
    //     var a=100;
    //     return a;
    // },1000)
    // console.log()
    function fn(){
        var a=100;
        return a;
    }
    var t=setTimeout(fn,1000)
    console.log(t)//2
    //ajax异步
    function ajax(){
        setTimeout(()=>{
            var a=100;
        },1000)
    }
    //如何得到a的值？
    function ajax(fn){
        setTimeout((callback)=>{
            var a=100;
            fn(a)
        },1000)
    }
    ajax((data)=>{
        console.log('回调返回值',data)
    })
    //什么是回调函数？

//后来出现promise，解决了异步问题，promise.all把一组异步事件依次全部执行完毕，每一个都必须成功

</script>